package tools

import (
	"errors"
	"fmt"
	"gopkg.in/yaml.v3"
	"os"
)

// LoadYml 加载配置文件
func LoadYml[T any](path string, t T) error {
	// 如果未指定配置文件路径，使用默认路径
	if path == "" {
		return errors.New("path is empty")
	}
	// 读取配置文件
	data, err := os.ReadFile(path)
	if err != nil {
		return fmt.Errorf("read file fail: %v", err)
	}
	// 解析YAML
	err = yaml.Unmarshal(data, &t)
	if err != nil {
		return fmt.Errorf("load file fail: %v", err)
	}
	return nil
}
